#include <REGX52.H>
#include "Timer0.h"
#include "Key.h"
#include <INTRINS.H>

unsigned char KeyNum,LEDMode;

void main()
{
	P2=0xFE;
	Timer0_Init();
	while(1)
	{
		KeyNum=Key();
		if(KeyNum)
		{
			if(KeyNum==1)
			{
				LEDMode++;
				if(LEDMode>=2)LEDMode=0;
			}
		}
	}
}

void Timer0_Routine() interrupt 1//中断函数
{
	static unsigned int T0Count;//加上static保持上次的值，为静态变量
	//重新给T0定时器赋初始值
	TL0 = 0x66;				//设置定时初始值
	TH0 = 0xFC;				//设置定时初始值
	
	//假设单片机的时钟频率为12MHz，定时器的计数频率为12MHz / 12 = 1MHz
	//（因为8051单片机的定时器计数频率是时钟频率的1/12），即每1微秒计数一次。
	//因此，定时器从64535计数到65535需要1000微秒，即1毫秒。
	T0Count++;
	if(T0Count>=500)
	{
		T0Count=0;
		if(LEDMode==0)
			P2=_crol_(P2,1);
		if(LEDMode==1)
			P2=_cror_(P2,1);
	}
}